# 管理员工类：管理员类
# 属性：账号 密码 员工序列(列表)
# 行为：员工的增删改查
import json
import os.path

# 导入ClassEmployee模块中的Employee类
from ClassEmployee import Employee


class Manager:
    def __init__(self, username, password):
        self.username = username
        self.password = password
        # 使用字典保存员工信息  编号作为键   其他信息一起作为值
        self.emp_map = {}
        # 当创建管理员对象时，试图读取保存员工信息的.json文件
        if os.path.exists("emp_map.json"):
            with open("emp_map.json", "r", encoding="utf-8") as file:
                self.emp_map = json.load(file)
        else:
            # 如果不存在，创建一个空字典
            with open("emp_map.json", "w", encoding="utf-8") as file:
                json.dump(self.emp_map, file)

    def add_emp(self, name, dept, salary):
        # 判断当前员工字典中是否有数据
        if len(self.emp_map) > 0:
            # 得到所有的键
            keys = self.emp_map.keys()
            # 转换为列表
            keys = list(keys)
            # 获取最后一条记录
            last_id = keys[-1]
            # id自增
            emp = Employee(int(last_id) + 1, name, dept, salary)
            # 添加新员工到字典中
            self.emp_map[int(last_id) + 1] = emp.__dict__
        else:
            # 第一个添加，从一个默认值开始
            emp = Employee(1000, name, dept, salary)
            self.emp_map[1000] = emp.__dict__
        # 无论何时运行添加，都将最新的员工字典保存
        with open("emp_map.json", "w", encoding="utf-8") as file:
            json.dump(self.emp_map, file)

    def show_all(self):
        for value in self.emp_map.values():
            print(value)

    def menu(self):
        print("1.员工入职")
        print("2.查看所有")
        print("3.调整薪资")
        print("4.员工离职")
        print("5.退出")
        inp = int(input("请选择"))
        if inp == 1:
            name = input("请输入姓名")
            dept = input("请输入部门")
            salary = input("请输入工资")
            self.add_emp(name, dept, salary)
        elif inp == 2:
            self.show_all()
        elif inp == 3:
            pass
        elif inp == 4:
            pass
        self.menu()
